package com.atguigu.jxc.service;

import com.atguigu.jxc.domain.ServiceVO;
import com.atguigu.jxc.entity.Goods;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

public interface GoodsService {


    ServiceVO getCode();


    /**
     * 分页查询商品库存信息
     * @param codeOrName 商品编码或名称
     * @param goodsTypeId 商品类别ID
     * @return
     */
    List<Goods> listInventory(String codeOrName, Integer goodsTypeId, Integer page, Integer rows);

    /**
     * 查询商品信息
     * @param goodsTypeId
     * @param goodsName
     * @return
     */
    List<Goods> list(Integer goodsTypeId, String goodsName);

    /**
     *商品添加或修改
     */
    void saveAndUpdate(Goods goods);

    /**\
     * 商品删除
     */
    ServiceVO deleteGoodsById(Integer goodsId);

    /**
     * 无库存商品列表展示（可以根据商品名称或编码查询）
     */
    List<Goods> getNoInventoryQuantity(String nameOrCode);

    /**
     * 有库存商品列表展示（可以根据商品名称或编码查询）
     */
    List<Goods> getHasInventoryQuantity(String nameOrCode);

    /**
     * 添加库存、修改数量或成本价
     * @param goodsId
     * @param inventoryQuantity
     * @param purchasingPrice
     */
    void saveStock(Integer goodsId, Integer inventoryQuantity, Double purchasingPrice);

    /**
     * 查询所有 当前库存量 小于 库存下限的商品信息
     */
    List<Goods> listAlarm();


//    Map<String, Goods> listInventoryone();
}
